package com.itheima.d03_xml_parse;

import lombok.extern.slf4j.Slf4j;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

/**
 * 目标：了解XML解析流程
 */
@Slf4j
public class Test {

    public static void main(String[] args) throws Exception {

        log.error("开始解析users.xml文件...");
        //需求：解析出users.xml中的所有用户信息
        //1.创建集合，存储解析的用户信息
        ArrayList<User> list = new ArrayList<>();

        //2.使用Dom4j工具解析xml文件
        //2.1 创建SaxReader 解析器对象
        SAXReader reader = new SAXReader();
        log.warn("开始创建SAXReader对象...");

        //2.2 使用解析器对象，将xml文件解析为Document对象
        Document doc = reader.read("day12_properties_xml_log\\src\\com\\itheima\\d02_xml\\users.xml");

        //2.3 获取根元素对象
        Element users = doc.getRootElement();

        //2.4 获取根元素下的所有user子元素
        List<Element> userElements = users.elements("user");
        for (Element userElement : userElements) {
            //2.5 解析user子元素中用户信息
            int age = Integer.parseInt(userElement.elementText("age"));
            String sex = userElement.elementText("sex");
            String address = userElement.elementText("address");

            Element nameEle = userElement.element("name");
            String name = nameEle.getText();
            int num = Integer.parseInt(nameEle.attributeValue("num"));
            int id  = Integer.parseInt(nameEle.attributeValue("id"));

            //2.6 创建User对象，封装用户信息
            User user = new User(id,num,name,age,sex,address);
            list.add(user);
        }

        System.out.println("解析完毕... ");

        list.forEach(System.out::println);

    }
}
